package controllers;

import play.*;
import play.data.validation.Required;
import play.db.DB;
import play.mvc.*;

import java.sql.ResultSet;
import java.util.*;

import javax.servlet.http.HttpSession;

import org.h2.engine.Session;

import models.*;

public class Application extends Controller {
	

	//Login
	public static void login() {
        render();
    }
    
	
	//Index
	public static void index() {
		
		//Verifica se o usuario esta logado
		if(session.current().isEmpty())
		{
			//Dispara mensagem de erro e redireciona para a pagina onde o erro é exibido
			flash.error("usuario não autenticado!");
			login();
		}
		else
		{
			//Renderiza pagina
			render();
		}
    }
    
    
    //Usuario
    public static void cadastrarUsuario()
    {
    	render();
    }
    
    //Editar Usuario
    public static void editarUsuario(long idUsuario)
    {
    	//Verifica se o usuario esta logado
		if(session.current().isEmpty())
		{
			//Dispara mensagem de erro e redireciona para a pagina onde o erro é exibido
			flash.error("usuario não autenticado!");
			login();
		}
		else
		{
			//seleciona o usuario que possui este id = idUsuario 
			Usuario usuario = Usuario.find("id", idUsuario).first();
			//renderiza a pagina editarUsuario passando os dados do usuario
			render(usuario);
		}
    }
    
    
    //Cidade
    public static void cidades()
    {
    	//Verifica se o usuario esta logado
		if(session.current().isEmpty())
		{
			//Dispara mensagem de erro e redireciona para a pagina onde o erro é exibido
			flash.error("usuario não autenticado!");
			login();
		}
		else
		{	
			//lista as cidades e renderiza a pagina cidades passando os dados de uma lista de cidades 
    		List<Cidade> cidades = Cidade.all().fetch();
			render(cidades);
		}
		
		
    }
    
  
    public static void editarCidade(long codCidade)
    {
    	
    	//Verifica se o usuario esta logado
		if(session.current().isEmpty())
		{
			//Dispara mensagem de erro e redireciona para a pagina onde o erro é exibido
			flash.error("usuario não autenticado!");
			login();
		}
		else
		{
			//seleciona os a cidade onde o campo codcidade = codcidade
			Cidade cidade = Cidade.find("CodCidade", codCidade).first();
			
			//renderiza a pagina editarUsuario passando os dados do usuario
			render(cidade);
    	
		}
    }
    
    public static void cadastrarCidade()
    {  
    	//Verifica se o usuario esta logado
		if(session.current().isEmpty())
		{
			//Dispara mensagem de erro e redireciona para a pagina onde o erro é exibido
			flash.error("usuario não autenticado!");
			login();
		}
		else
		{
			//renderiza pagina de cadstro de cidades
			render();
		}
    }
    
    
    //Bairro
    
    public static void bairros(long codCidade)
    {
    	//Verifica se o usuario esta logado
		if(session.current().isEmpty())
		{
			//Dispara mensagem de erro e redireciona para a pagina onde o erro é exibido
			flash.error("usuario não autenticado!");
			login();
		}
		else
		{
			//lista os bairros e renderiza a pagina bairros passando os dados de uma lista de bairros 
			List<Bairro> bairros = Bairro.find("CodCidade", codCidade).fetch();
			render(bairros);
		}
    }
    
    public static void editarBairro(long codCidade,long codBairro)
    {
    	//Verifica se o usuario esta logado
		if(session.current().isEmpty())
		{
			//Dispara mensagem de erro e redireciona para a pagina onde o erro é exibido
			flash.error("usuario não autenticado!");
			login();
		}
		else
		{
			//lista um bairro
			Bairro bairro = Bairro.listarBairro(codCidade, codBairro);
			render(bairro);
		}
    }
    
    
    public static void cadastrarBairro(long codCidade)
    {  
    	//Verifica se o usuario esta logado
		if(session.current().isEmpty())
		{
			//Dispara mensagem de erro e redireciona para a pagina onde o erro é exibido
			flash.error("usuario não autenticado!");
			login();
		}
		else
		{
			//renderiza pagina de cadstro de cidades
			render(codCidade);
		}
    }
    
    public static void favorecidos(long codUsuario, String nome, String tipo, long codCidade){
    	//Verifica se o usuario esta logado
		if(session.current().isEmpty())
		{
			//Dispara mensagem de erro e redireciona para a pagina onde o erro é exibido
			flash.error("usuario não autenticado!");
			login();
		}
		else
		{
			//lista os favorecidos e renderiza a pagina favorecidos passando os dados de uma lista de favorecidos
			String sql = "CodUsuario = " + codUsuario;
			if(nome != ""){
				sql += "favorecido = '" + nome;
			}
			if(tipo != ""){
				sql += "tipoFavorecido = '" + tipo + "'";
			}
			if(codCidade != 0){
				sql += "codCidade = " + codCidade;
			}
			List<Favorecido> favorecidos = Favorecido.find(sql).fetch();
			render(favorecidos);
		}
    }
    
    public static void cadastrarFavorecido(){
    	//Verifica se o usuario esta logado
		if(session.current().isEmpty())
		{
			//Dispara mensagem de erro e redireciona para a pagina onde o erro é exibido
			flash.error("usuario não autenticado!");
			login();
		}
		else
		{
			//renderiza pagina de cadastro de favorecidos
			render();
		}
    }
}